package com.qc.service;

import java.sql.SQLException;
import java.util.List;

import com.qc.entity.BossEntityVo;
import com.qc.entity.BannerEntity;
import com.qc.entity.EducationEntity;
import com.qc.entity.HeightEntity;
import com.qc.entity.InterestUserEntity;
import com.qc.entity.OccupationEntity;
import com.qc.entity.OrderCommentEntity;
import com.qc.entity.PhoneVersionEntity;
import com.qc.entity.PointEntity;
import com.qc.entity.ReportEntity;
import com.qc.entity.SecScheduleCommentEntity;
import com.qc.entity.SecScheduleReplyCommentEntity;
import com.qc.entity.SecretaryEntity;
import com.qc.entity.SecretaryVideoEntity;
import com.qc.entity.SkillTagEntity;
import com.qc.entity.UserAuthVerifyEntity;
import com.qc.entity.UserBossEntity;
import com.qc.entity.UserBossScheduleEntity;
import com.qc.entity.UserCashEntity;
import com.qc.entity.UserEntity;
import com.qc.entity.UserEntityVo;
import com.qc.entity.UserFeedBackEntity;
import com.qc.entity.UserMoneyLogEntity;
import com.qc.entity.UserSecScheduleEntity;
import com.qc.entity.UserSecretaryEntity;
import com.qc.entity.UserVerifyEntityVo;
import com.qc.entity.search.UserBossSearchEntity;
import com.qc.entity.search.UserSecSearchEntity;

@SuppressWarnings("rawtypes")
public interface UserService {
	
	long updateRegistrationId(String registrationId, long userId);
	
	//查询手机号是否存在
	UserEntity getUserName(String userame);
	
	long register(UserEntity entity)  throws SQLException;
	
	long saveTokenByUserId(long userId, String token);

	String getMobileCode(String mobile);

	UserEntity userLogin(String mobile, String pwd);
	
	long forgetPwd(String mobile, String pwd);
	
	long updateCodeByMobile(String mobile, String code);
	
	long saveCode(String mobile, String code);
	
	long updateRole(int userRole, long userId);
	
	long updateAvatar(String avatarName, long userId);
	
	long updateUserInfo(UserEntity entity)  throws SQLException;
	
	long updateBindMobile(String mobile, long userId) throws SQLException;
	
	UserEntity getUserInfoByUserId(long userId);
	
	UserEntity getUserInfoByPwdAndUserId(long userId, String pwd);
	
	long updateUserPwd(UserEntity entity);
	
	long saveFeedBack(UserFeedBackEntity entity);
	
	long saveSecretarySchedule(UserSecScheduleEntity entity);
	
	//秘书发布删除
	int deleteSecretarySchedule(UserSecScheduleEntity entity);
	
	List<UserSecScheduleEntity> getSecScheduleByUserId(long userId);
	
	List<SkillTagEntity> getAllSkillTag();
	
	List<UserSecScheduleEntity> getSecScheduleByCity(UserSecSearchEntity entity);
	
	long updateSecScheduleRead(long ssId);
	
	long saveSecScheduleComment(SecScheduleCommentEntity entity);
	
	long saveSecScheduleReplyComment(SecScheduleReplyCommentEntity entity);
	
	long delSecScheduleComment(SecScheduleCommentEntity entity);
	
	List<SecScheduleCommentEntity> getSecretaryCommentBySSID(long secScheduleId);
	
	long updateSecretaryInfo(UserSecretaryEntity entity);
	
	UserSecretaryEntity getSecretaryInfoByUserId(long bossUserId, long userId);
	
	long updateBossInfo(UserBossEntity entity);
	
	UserBossEntity getBossInfoByUserId(long secUserId,long userId);
	
	long saveBossSchedule(UserBossScheduleEntity entity);
	
	List<UserBossScheduleEntity> getBossScheduleByUserId(long userId);
	
	List<UserBossScheduleEntity> getBossScheduleByCity(UserBossSearchEntity entity);
	
	long interestUser(InterestUserEntity entity);
	
	long cancelInterestUser(InterestUserEntity entity);
	
	List<InterestUserEntity> getInterestUser(long receiveUserId, int type);
	
	List<OrderCommentEntity> getOrderCommentByUserId(long userId);
	
	UserSecScheduleEntity getSecScheduleBySSId(long ssId, long userId);
	
	SecretaryVideoEntity getSecretaryVideoByUserId(long userId);
	
	long addSecretaryVideo(SecretaryVideoEntity entity);
	
	long updateSecretaryVideo(SecretaryVideoEntity entity);
	
	long updateSecretaryVideoRead(long userId);
	
	long addAuthVerify(UserAuthVerifyEntity entity);
	
	UserAuthVerifyEntity getAuthVerify(long userId);
	
	long updateAuthVerify(UserAuthVerifyEntity entity);
	
	List<HeightEntity> getAllHeight();
	
	List<EducationEntity> getAllEducation();
	
	List<OccupationEntity> getAllOccupation();
	
	List<SecretaryEntity> getAllOneSpecialty();
	
	List<SecretaryEntity> getAllTwoSpecialty(String parent);
	
	List<BannerEntity> getBannerByType(BannerEntity entity);
	
	long addCashOut(UserCashEntity entity);
	
	long updateUserBalance(double cashOut, long userId);
	
	List<UserCashEntity> getUserCashDetail(long userId);
	
	long addMoneyLog(UserMoneyLogEntity entity);
	
	PhoneVersionEntity getPhoneVersionByType(int type);
	
	long reportScreenshot(ReportEntity entity);
	
	//根据用户id 修改交易数量
	int updateTransactionNumber(long userId );
	
	/*************PC********************************/
	
	int getListUserCount(String userName,String isAuth,String sex,String userRole);
	
	List getAllUser(String userName,String isAuth,String sex,String userRole,int pageNo,int pageSize);
	
    UserEntityVo getUserId(String userId);
    
    //查询boss信息
    BossEntityVo getBossUserId(String userId);
    
    int deleteUserId(String userId);
    
    int coutAuditing(String userRole);
    
    //根据条件查询所有boss发布总数
    int getListBossShCount(String nickname);
    
    //查询所有boss信息
    List getAllBossSh(String nickname,int pageNo,int pageSize);
    
    //删除boss发布信息
    int deleteBossShId(String userId);
    
    //查询boss发布信息
    UserBossScheduleEntity getBossSh(String userId);
    
    //审核管理 查询总数
    int getListVerifyCount(String mobile,String userRole,String sex);
    
    //列表
    List getListAllVerify(String mobile,String userRole,String sex,int pageNo,int pageSize);
    
    //查看详细
    UserVerifyEntityVo getVerifyId(String id);
    
    //修改 通过 不通过
    int updateVType(String vType,String id,String describe);
    
    //分享查询
    UserSecScheduleEntity getUserSecScheduleId(String ssId);
    
    //是否接单状态
    int updateOrdersState(long userId,int ordersState);
    
    //评论数 加1
    int updateCommentCountPlus(long ssId);
    
    //评论数 减1
    int updateCommentCountReduce(long ssId);
    
    //排行榜 列表
    List<UserSecScheduleEntity> listRanking(String stateTime,String endTime,int pageNo,int pageSize);
    
    //点赞数加1
    int updatePoint(long ssId);
    
    //判断当前用户 是否已点赞
    int getPointCount(long ssId,long userId);
    
    //添加点赞人
    int savePoint(PointEntity pointEntity);
}
